﻿using SiGeCoPre.Presupuesto_DAO;
using SiGeCoPre.Presupuesto_DAOIMPL;

namespace SiGeCoPre.Presupuesto_Factory
{
    /// <summary>
    /// Clase para obtener instancias de las implementaciones
    /// de las interfaces DAO
    /// </summary>
    class DAOFactoryPresupuesto
    {
        /// <summary>
        /// Obtiene una implementación de DAOPaises
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLPaises</returns>
        public static DAOPaises createPais()
        {
            return new DAOIMPLPaises();
        }

        /// <summary>
        /// Obtiene una implementación de DAOProvincias
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLProvincias</returns>
        public static DAOProvincias createProvincia()
        {
            return new DAOIMPLProvincias();
        }

        /// <summary>
        /// Obtiene una implementación de DAOCiudades
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLCiudades</returns>
        public static DAOCiudades createCiudad()
        {
            return new DAOIMPLCiudades();
        }

        /// <summary>
        /// Obtiene una implementación de DAOClientes
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLClientes</returns>
        public static DAOClientes createCliente()
        {
            return new DAOIMPLClientes();
        }

        /// <summary>
        /// Obtiene una implementación de DAOEmpleados
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLEmpleados</returns>
        public static DAOEmpleados createEmpleado()
        {
            return new DAOIMPLEmpleados();
        }

        /// <summary>
        /// Obtiene una implementación de DAORepuestos
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLRepuestos</returns>
        public static DAORepuestos createRepuesto()
        {
            return new DAOIMPLRepuestos();
        }

        /// <summary>
        /// Obtiene una implementación de DAOSectores
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLSectores</returns>
        public static DAOSectores createSector()
        {
            return new DAOIMPLSectores();
        }

        /// <summary>
        /// Obtiene una implementación de DAOClientesCiudades
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLClientesCiudades</returns>
        public static DAOClientesCiudades createClienteCiudad()
        {
            return new DAOIMPLClientesCiudades();
        }

        /// <summary>
        /// Obtiene una implementación de DAOEquipo
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLEquipo</returns>
        public static DAOEquipo createEquipo()
        {
            return new DAOIMPLEquipo();
        }

        /// <summary>
        /// Obtiene una implementación de DAOPresupuestos
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLPresupuestos</returns>
        public static DAOPresupuestos createPresupuesto()
        {
            return new DAOIMPLPresupuestos();
        }

        /// <summary>
        /// Obtiene una implementación de DAOPresupuestosClientes
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLPresupuestosClientes</returns>
        public static DAOPresupuestosClientes createPresupuestoCliente()
        {
            return new DAOIMPLPresupuestosClientes();
        }

        /// <summary>
        /// Obtiene una implementación de DAOMantenimiento
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLMantenimiento</returns>
        public static DAOMantenimiento createMantenimiento()
        {
            return new DAOIMPLMantenimiento();
        }

        /// <summary>
        /// Obtiene una implementación de DAOPresupuestoMantenimiento
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLPresupuestoMantenimiento</returns>
        public static DAOPresupuestoMantenimiento createPresupuestoMantenimiento()
        {
            return new DAOIMPLPresupuestoMantenimiento();
        }

        /// <summary>
        /// Obtiene una implementación de DAOPresupuestoRepuesto
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLPresupuesRepuesto</returns>
        public static DAOPresupuestoRepuesto createPresupuestoRepuesto()
        {
            return new DAOIMPLPresupuestoRepuesto();
        }

        /// <summary>
        /// Obtiene una implementación de DAOPresupuestoEquipo
        /// </summary>
        /// <returns>Devuelve una instancia de DAOIMPLPresupuestoEquipo</returns>
        public static DAOPresupuestoEquipo createPresupuestoEquipo()
        {
            return new DAOIMPLPresupuestoEquipo();
        }
    }
}
